1. Field of the Invention
This invention is directed to a multiplexer circuit, in general, and to a standard/proportional multiplexer circuit, in particular, especially such a circuit which can be implemented as a single monolithic integrated circuit using gate array implementation.
2. Prior Art
There are many types of multiplexer (MUX) circuits known in the art. These circuit, typically, receive inputs from a plurality of sources and, selectively, supply output signals to a single user (or vice versa). Among the types of MUXs available are standard MUXs which operate as pure switching circuits and proportional MUXs which permit greater control over the information transferred thereby.
Essentially, MUXs are an array of SPST switches, connected to function in the nature of a single-pole, multi-position switch. Typically, these use 2, 4, 8, 16 (or other) number of channels. The MUX's can be of analog or digital configuration. In the case of analog devices, especially in integrated circuit (IC) form, a digital decoder is used so that only a binary input is required to select the desired switch position. When used as a commutator, the binary input must change at the commutation rate. Differential MUX's usually use an array of DPST switches associated with two outputs thereby permitting direct connection to the differential amplifier inputs.
Multiplexers usually operate with relatively fast binary pulse signals and find application in data acquisition systems telemetry, industrial controls, programmable power supplies and many other electronic circuits and systems.
The principles of time division multiplexing can be implemented into any digital system by using MUXs, typically, in IC form. This circuitry is especially useful in data routing, parallel-to-serial conversions, signal gating and a host of other applications including those using Boolean algebra. A standard MUX will perform time division multiplexing of the data stream with the user rates.
A proportional MUX is used whenever the amount of data allocated to a user can be dynamically changed. This change can be effected under microprocessor control and can occur from minute-to-minute, hour-to-hour, or whatever the needs are. Thus, as a user's needs increase, more of the data stream can be supplied thereto and thereby reduce the storage that the user otherwise would have to have to avoid losing of data in the event that the user did not have this capability. In some cases, users are arranged to pass information for a period of time and then, in essence, do nothing for a while. In this case, a proportional MUX is used to pass data for a period of time, then allocate nothing until the user needs to have more information transmitted. With this concept of a proportional MUX, a microprocessor will monitor the user's need and allocate the proportion of data stream required to meet that need. The microprocessor could then modify the allocated proportion as the requirements arose so that the user could have more or less of that data stream. This permits a continually expanding and contracting type of operation with each of the users.
A related concept is called a statistical MUX. Statistical MUXs can perform a similar function under microprocessor control, except the microprocessor totally controls the data. In these systems, the microprocessor frames the data and it is presented at a low enough rate so the microprocessor has total control thereof. However, microprocessor control of the data on a bit-for-bit basis is relatively slow and cannot be used adequately in high speed applications. One thing that is required on any proportional multiplexing scheme is there has to be information as to what portion of the data stream has been allocated to each user. The microprocessor usually provides that information in the header portion of each data frame. The data frame allocation information may be straight binary bits or it may be more elaborate such as an error correction code (similar to Golay or Hamming) which can detect and correct single errors or detect multiple errors. This helps eliminate false decoding of the proportional data at the demultiplexing end.